import { get, post, put, del } from '@/utils/request'

// 定义接口返回数据类型
export interface UserInfo {
  id: number
  username: string
  email: string
}

interface LoginParams {
  username: string
  password: string
}

interface ApiResponse<T> {
  code: number
  data: T
  result: T
  message: string
}

// 系统相关接口
export const systemApi = {
   // 获取服务器时间
   getServerTime: () => {
    return get<ApiResponse<number>>('platformcore/public/core/service/time')
  }
}

// 用户相关接口
export const userApi = {
  // 用户登录
  login: (data: LoginParams) => {
    return post<ApiResponse<{ token: string }>>('/user/login', data)
  },

  // 获取用户信息
  getUserInfo: () => {
    return get<ApiResponse<UserInfo>>('/user/info')
  },

  // 更新用户信息
  updateUserInfo: (data: Partial<UserInfo>) => {
    return put<ApiResponse<UserInfo>>('/user/info', data)
  },

  // 退出登录
  logout: () => {
    return post<ApiResponse<null>>('/user/logout')
  },

}

// 文章相关接口
export const articleApi = {
  // 获取文章列表
  getList: (params: { page: number; pageSize: number }) => {
    return get<ApiResponse<{ list: any[]; total: number }>>('/article/list', params)
  },

  // 获取文章详情
  getDetail: (id: number) => {
    return get<ApiResponse<any>>(`/article/${id}`)
  },

  // 创建文章
  create: (data: any) => {
    return post<ApiResponse<any>>('/article/create', data)
  },

  // 更新文章
  update: (id: number, data: any) => {
    return put<ApiResponse<any>>(`/article/${id}`, data)
  },

  // 删除文章
  delete: (id: number) => {
    return del<ApiResponse<null>>(`/article/${id}`)
  }
}
